<?php

class Mercado extends Zend_Db_Table_Row_Abstract
{

    
    public function getRede(){
        return $this->findParentRow('DbTable_RedeMercado');
    }
    
    
    public function getEndereco(){
    	return $this->findParentRow('DbTable_Endereco');
    }
    
    
    public function getCoordenada(){
    	return $this->findParentRow('DbTable_Coordenada');
    }
    
    
    /**
     * @tutorial Verifica se o mercado eh preferido do usuario.
     * @param int $idUsuario
     * @return boolean
     */
    public function ehPreferido($idUsuario){
        
        $mercadosPreferidos = $this->findDependentRowset('DbTable_MercadoPreferido', null, $this->select()->where("ID_USUARIO = '{$idUsuario}'"));
        
        return count($mercadosPreferidos) > 0;
    }
    
    
    
    public function estahNaArea($latitudeArea, $longitudeArea){
   	
    	$coordenada = $this->getCoordenada();
    	
    	if (is_null($coordenada)) return false;
    	
    	$latitudeMercado = $coordenada->vl_latitude;
    	$longitudeMercado = $coordenada->vl_longitude;
    	 
    	$somaCatetos = pow ((abs($latitudeMercado) - abs($latitudeArea)), 2) + pow ((abs($longitudeMercado) - abs($longitudeArea)), 2);
    	
    	$raio = 0.029032498;//0.028423083036; ~3km
    	$valor = $somaCatetos - pow($raio,2);
    	
    	if ($valor > 0) return false;
    	
    	return true;
    }
}
